package com.venutech.gongan.dao;

import com.baomidou.mybatisplus.plugins.Page;
import com.venutech.gongan.dto.rpc.common.vo.PoleDto;
import com.venutech.gongan.entity.Jkgw;
import com.venutech.gongan.vo.PoleEquipmentDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 监控杆位操作Dao接口
 */
@Mapper
public interface JkgwMapper {
    //插入数据
    int insert(Jkgw jkgw);

    //获取最大序列
    int getLastSeq();

    //根据id修改监控杆位信息
    int updateJkgw(Jkgw jkgw);

    //根据id删除监控杆位信息
    int deleteById(Integer gw_id);

    //根据杆位id和和传入半径修改杆位半径值
    //int updateJkgwRadius(@Param("gw_id")Integer gw_id);

    //根据id返回对象信息
    Jkgw getById(Integer gw_id);

    //分页信息
    List<Jkgw> getInfo (String begintime, String endtime, String badw, Page<Jkgw> page, @Param("gw_name") String gw_name);


    //API
    //插入数据 api
    int insertPoleDto(PoleDto poleDto);

    //获取监控杆位信息（外网）api
    Jkgw getByQrId(Integer qr_id);

    //根据二维码Id查询关联的杆位信息和设备列表 api
    PoleEquipmentDto getEquipment(Integer qr_id);

    //根据qrId查询出杆位经纬度信息
    Jkgw getByLatAndLng(Integer qrId);

    Jkgw getByIdMD5(String qrIdMD5);

    int updateJkgwPoleDto(PoleDto poleDto);

    /**
     * 根据经纬度和半径搜索设备和杆位
     * @param gw_jd
     * @param gw_wd
     * @return
     */
    Jkgw getBoleByIdLatitudeAndRadius(@Param("gw_jd") String gw_jd, @Param("gw_wd") String gw_wd);

    /**
     * @Author liuzhengli
     * @Description //TODO 根据杆位对象获取所有杆位
     * @Date  2021/8/9 0009 20:46
     * @Param * @param null:
     * @return
     */
    List<Jkgw> getJkgwList(Jkgw jkgw);


    List<Jkgw> getPolesByPositionAndRadius(@Param("longitude") double longitude, @Param("latitude") double latitude, @Param("radius") double radius);

    List<Jkgw> getAllPoles();

    int updateAreaCodeAndTownCode(@Param("poleId") int poleId, @Param("townCode") String townCode, @Param("townName") String townName, @Param("areaCode") String areaCode, @Param("areaName") String areaName);

    int updateQrIdMd5(@Param("poleId") int poleId, @Param("oldQrIdMd5") String oldQrIdMd5, @Param("newQrIdMd5") String newQrIdMd5, @Param("qrBm") String qrBm);

    /**
     * 统计所有杆件数量
     * @return
     */
    int countAll();
}
